package com.example.adminframework.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;


/**
 * 类描述：Knife4j配置文件
 */
@Configuration
@EnableSwagger2WebMvc

//@EnableSwagger2
@PropertySource(value = "classpath:application.yml", encoding = "utf-8")
public class Knife4jConfiguration {
    @Value("${knife4j.ui.title}")
    private String title;

    @Value("${knife4j.ui.description}")
    private String description;

    @Value("${knife4j.ui.version}")
    private String version;

    @Value("${knife4j.group01.basePackage}")
    private String basePackage;

    @Value("${knife4j.group01.groupName}")
    private String groupName;

    @Bean(value = "defaultApi2")
    public Docket defaultApi2() {
        Docket docket = new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(new ApiInfoBuilder()
                        .title(title)
                        .description(description)
                        .version(version)
                        .build())
                //分组名称
                .groupName(groupName)
                .select()
                //这里指定Controller扫描包路径
                .apis(RequestHandlerSelectors.basePackage(basePackage))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }



//    @Value("${knife4j.ui.title}")
//    private String title;
//
//    @Value("${knife4j.ui.description}")
//    private String description;
//
//    @Value("${knife4j.ui.version}")
//    private String version;
//
//    @Value("${knife4j.group01.basePackage}")
//    private String basePackage;
//
//    @Value("${knife4j.group01.groupName}")
//    private String groupName;
//
//    @Bean(value = "defaultApi2")
//    public Docket defaultApi2() {
//        Docket docket = new Docket(DocumentationType.SWAGGER_2)
//                .apiInfo(new ApiInfoBuilder()
//                        .title(title)
//                        .description(description)
//                        .version(version)
//                        .build())
//                //分组名称
//                .groupName(groupName)
//                .select()
//                //这里指定Controller扫描包路径
//                .apis(RequestHandlerSelectors.basePackage(basePackage))
//                .paths(PathSelectors.any())
//                .build();
//        return docket;
//    }
/*






@Bean
public Docket createRestApi() {
    return new Docket(DocumentationType.SWAGGER_2)
//            .apiInfo(apiInfo())
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.example.adminframework"))
            .paths(PathSelectors.any())
            .build();
}
*/

//    @Bean(value = "defaultApi2")
//    public Docket defaultApi2() {
//        Docket docket=new Docket(DocumentationType.SWAGGER_2)
//                .apiInfo(new ApiInfoBuilder()
//                        //.title("swagger-bootstrap-ui-demo RESTful APIs")
//                        .description("# swagger-bootstrap-ui-demo RESTful APIs")
//                        .termsOfServiceUrl("http://www.xx.com/")
//                        .contact("xx@qq.com")
//                        .version("1.0")
//                        .build())
//                //分组名称
//                .groupName("2.X版本")
//                .select()
//                //这里指定Controller扫描包路径
//                .apis(RequestHandlerSelectors.basePackage("com.example"))
//                .paths(PathSelectors.any())
//                .build();
//        return docket;
//    }


}
